﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using public_dbOpt;

namespace prjEMR22_154
{
    public partial class Pa_Ins : Form
    {
        dbOPT dataOpt = new dbOPT();
        public static string strInspectID;

        public Pa_Ins()
        {
            InitializeComponent();
        }

        private void Pa_Ins_Load(object sender, EventArgs e)
        {
            string strHspID = PatientInfo_inquire_checked.strHspID;
            string sql = String.Format("select * from patient_inspect where HspID = '{0}';", strHspID);
            DataSet ds = new DataSet();//创建数据集
            ds = dataOpt.GetTable(sql);

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                // 访问数据集中的数据  
                DataRow row = ds.Tables[0].Rows[0]; // 获取第一行数据  
                object value = row["InspectID"];
                if (value != DBNull.Value) // 检查值是否为 DBNull  
                {
                    strInspectID = value.ToString();
                }
                sql = String.Format("select * from inspectinfo where InspectID = '{0}';", strInspectID);
                ds = dataOpt.GetTable(sql);
                if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    row = ds.Tables[0].Rows[0]; // 获取第一行数据  
                    InitBoxes(this, row);//初始化设置各个控件的初始值
                }
            }
            else
            {
                MessageBox.Show("项目为空。");
            }

            CloseBoxes(this);

            MR_contrl_exdit_RO PatientInfo = new MR_contrl_exdit_RO(); //实例化一个子窗口
            //设置子窗口不显示为顶级窗口
            PatientInfo.TopLevel = false;
            //设置子窗口的样式，没有上面的标题栏
            PatientInfo.FormBorderStyle = FormBorderStyle.None;
            //填充
            PatientInfo.Dock = DockStyle.Fill;
            //清空Panel里面的控件 
            this.panel1.Controls.Clear();
            //加入控件
            this.panel1.Controls.Add(PatientInfo);
            //让窗体显示
            PatientInfo.Show();
        }

        private void InitBoxes(Control parent, DataRow row)  //初始化设置各个控件的初始值
        {
            foreach (Control ctrl in parent.Controls)
            {
                if (ctrl is TextBox)
                {
                    TextBox textBox = (TextBox)ctrl;
                    string columnName = ctrl.Name;

                    // 检查列是否存在并尝试获取值  
                    if (row.Table.Columns.Contains(columnName))
                    {
                        object value = row[columnName];
                        if (value != DBNull.Value) // 检查值是否为 DBNull  
                        {
                            textBox.Text = value.ToString();
                        }
                    }
                    // 如果列不存在，可以选择记录日志、抛出异常或执行其他操作  
                    // else { /* 处理列不存在的情况 */ }  
                }
                if (ctrl is ComboBox)
                {
                    ComboBox textBox = (ComboBox)ctrl;

                    if (row.Table.Columns.Contains(ctrl.Name))
                    {
                        object value = row[ctrl.Name];
                        if (value != DBNull.Value) // 检查值是否为 DBNull  
                        {
                            textBox.Text = value.ToString();
                        }
                    }
                    // 如果列不存在，可以选择记录日志、抛出异常或执行其他操作  
                    // else { /* 处理列不存在的情况 */ } 
                }

            }

        }

        private void CloseBoxes(Control parent)  //关闭编辑模式函数
        {
            foreach (Control ctrl in parent.Controls)
            {
                if (ctrl is TextBox)
                {
                    TextBox textBox = (TextBox)ctrl;
                    textBox.ReadOnly = true;
                }

                if (ctrl is ComboBox)
                {
                    ComboBox textBox = (ComboBox)ctrl;
                    textBox.Enabled = false;
                }
                
            }

        }

        private void Save_Click(object sender, EventArgs e)
        {
            string strHspID = PatientInfo_inquire_checked.strHspID;
            string sql = String.Format("select * from patient_inspect where HspID = '{0}' and InspectID = '{1}';", strHspID, InspectID.Text);
            DataSet ds = new DataSet();//创建数据集
            ds = dataOpt.GetTable(sql);

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                sql = String.Format("UPDATE patient_inspect SET InspectID = '{0}' where HspID = '{1}'", InspectID.Text, strHspID);   //set后跟的属性不能加''
                dataOpt.OperateData(sql);
            }
            else
            {
                sql = String.Format("INSERT INTO patient_inspect (HspID) VALUES ({0})", strHspID);
                dataOpt.OperateData(sql);
                sql = String.Format("UPDATE patient_inspect SET InspectID = '{0}' where HspID = '{1}'", InspectID.Text, strHspID);   //set后跟的属性不能加''
                dataOpt.OperateData(sql);

            }
            MessageBox.Show("保存成功");
        }

        private void Change_Click(object sender, EventArgs e)
        {
            Pa_Ins_search a = new Pa_Ins_search();
            a.ShowDialog();
            if (Pa_Ins_search.sure_check)
            {
                strInspectID = Pa_Ins_search.strInspectID;

                string sql = String.Format("select * from inspectinfo where InspectID = '{0}';", strInspectID);
                DataSet ds = dataOpt.GetTable(sql);
                if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    DataRow row = ds.Tables[0].Rows[0]; // 获取第一行数据  
                    InitBoxes(this, row);//初始化设置各个控件的初始值
                }
            }
        }

        private void Cencel_Click(object sender, EventArgs e)
        {
            string strHspID = PatientInfo_inquire_checked.strHspID;
            string sql = String.Format("select * from patient_inspect where InspectID = '{0}';", strHspID);
            DataSet ds = new DataSet();//创建数据集
            ds = dataOpt.GetTable(sql);

            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                // 访问数据集中的数据  
                DataRow row = ds.Tables[0].Rows[0]; // 获取第一行数据  
                object value = row["InspectID"];
                if (value != DBNull.Value) // 检查值是否为 DBNull  
                {
                    strInspectID = value.ToString();
                }
                sql = String.Format("select * from inspectinfo where InspectID = '{0}';", strInspectID);
                ds = dataOpt.GetTable(sql);
                if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    row = ds.Tables[0].Rows[0]; // 获取第一行数据  
                    InitBoxes(this, row);//初始化设置各个控件的初始值
                }
            }
        }
    }
}
